﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//void test(int arr[])//参数写成数组形式，本质上还是指针
//{
//
//	printf("%d\n", sizeof(arr));
//}
////void test(int* arr)//参数写成指针形式
////{
////	printf("%d\n", sizeof(arr));//计算⼀个指针变量的⼤⼩
////}
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	test(arr);
//	return 0;
//}
// 有问题******************************************
//#include<stdio.h>
//
//int main()
//{
//	const char* pstr = "hello";//这⾥是把⼀个字符串放到pstr指针变量⾥了吗？
//	printf("%s\n", pstr);
//	return 0;
//}
//#include <stdio.h>
//int Add(int x, int y)
//{
//	return x + y;
//}
//int main()
//{
//	int(*pf3)(int, int) = Add;
//
//	printf("%d\n", (*pf3)(2, 3));
//	printf("%d\n", pf3(3, 5));
//	return 0;
//}
//*******************************************************************
//#include<stdio.h>
//int main()
//{
//	int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };
//	int a = 0, b = 0, c = 0;
//	int flag = 1;
//	scanf("%d", &c);
//	for (a = 0; a < 3; a++)
//	{
//		for (b = 0; b < 3; b++)
//		{
//			if (c == arr[a][b])
//			{
//				printf("找到了!这个数的坐标是:(%d %d) \n",a,b);
//				flag--;
//				break;
//			}
//		}
//	}
//	if (flag == 1)
//	{
//		printf("没找到 \n");
//	}
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int arr[9][9] = { 0 };
//	for (int i = 0; i < 9; i++)
//	{
//		for (int j = 0; j < 9; j++)
//		{
//			arr[i][j] = 1;
//		}
//	}
//	int i = 0, j = 0;
//	for (i = 2; i < 9; i++)
//	{
//		
//		for (j = 1; j < i; j++)
//		{
//			arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
//		}
//	}
//	for (i = 0; i < 9; i++)
//	{
//		for (j = 0; j <= i;j++)
//		{
//			printf("%d ", arr[i][j]);
//		}
//		printf("\n");
//	}
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	char arr1[5] = "abcde";
//	char arr2[5] = "abcde";
//	int ch = 0;
//	//先判断两个字符串是否相等
//	int sz1 = sizeof(arr1) / sizeof(arr1[0]);
//	int sz2 = sizeof(arr2) / sizeof(arr2[0]);
//	if (sz1 == sz2)
//	{
//		for (int n = 0; n < 5; n++)
//		{
//			for (int i = n; i < 5; i++)
//			{
//
//			}
//		}
//	}
//	else
//		printf("1\n");
//	
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	char ch[10] = { 0 };
//	gets(ch);
//	puts(ch);
//
//	return 0;
//}
//耗时一下午******************************************
//很棒
//#include<stdio.h>
//#define max 100
//
//int str(char* ch)
//{
//	int count = 0;
//	int i = 0;
//	while (*(ch + i) != '\0')
//	{
//		count++;
//		i++;
//	}
//	return count;
//}
//
// void span(char*ch1, int k,int len1)
//{
//	char tem[max] = { 0 };
//	for (int i = 0; i < len1 - k; i++)
//	{
//		tem[i] = ch1[k + i];
//
//	}
//	for (int j = 0; j < k; j++)
//	{
//		tem[len1 - k + j] = ch1[j];
//	}
//	for (int n = 0; n < len1; n++)
//	{
//		printf("%c", tem[n]);
//	}
//}
//
// //ch1和ch2比较
// int compare(char *ch1, char* ch2, int len1, int len2, int k)
// {
//	 if (len1 == len2)
//	 {
//		 for (int i = 0; i < (len1 - k); i++)
//		 {
//			 int flag = 0;
//			 if (ch2[i] == ch1[ k+ i])
//			 {
//				 flag = 1;
//			}
//			 else if (flag == 0)
//			 {
//				 return 0;
//			 }
//		}
//		 for (int j = len1 - k; j < len1; j++)
//		 {
//			 int flag = 0;
//			 if (ch2[j] == ch1[j - (len1-k)])
//			 {
//				 flag = 1;
//
//			 }
//			 else if (flag == 0)
//			 {
//				 return 0;
//			 }
//
//		 }
//		 return 1;
//	 }
//	 else
//		 return 0;
// }
//
//
//int main()
//{
//	char ch1[max] = { 0 };
//	char ch2[max] = { 0 };
//	int k = 0;
//
//	printf("请输入字符串: ");
//	gets(ch1);
//
//	int len1 = str(ch1);
//	printf("请输入要左旋的个数: ");
//	scanf("%d", &k);
//	//开始左旋
//	printf("左旋后的字符串：");
//	span(ch1, k,len1);
//	printf("\n");
//	printf("请输入要比较的字符串：");
//	getchar();
//	gets(ch2);
//	int len2 = str(ch2);
//	//printf("%d", len2);
//	//比较这两个字符串
//	int ret=compare(ch1, ch2, len1, len2, k);
//	printf("%d", ret);
//	return 0;
//}

//#include <stdio.h>
//
//int main()
//{
//	
//	char k='0';
//	for (char k = 'A'; k <= 'D'; k++)
//	{
//		if ((k != 'A') + (k == 'C') + (k == 'D') + (k != 'D') == 3)
//		{
//			printf("%c", k);
//		}
//	}
//	return 0;
//}
//#include <stdio.h>
//
//int main()
//{
//
//	int arr[3][3] = { 1 };
//
//	return 0;
//}
/* rename example */
//#include <stdio.h>
//
//int main()
//{
//    int result;
//    char oldname[] = "oldname.txt";
//    char newname[] = "newname.txt";
//    result = rename(oldname, newname);
//    if (result == 0)
//        puts("File successfully renamed");
//    else
//        perror("Error renaming file");
//    return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int i = 0;
//	int sum = 0;
//	int j = 0;
//	int n, v, m, a;
//	scanf("%d %d %d %d", &n, & v, &m, &a);
//	int v2 = v;
//	for (int i = 2; i <= n; i++) //从第二个人开始计算
//	{
//		j++;//j从第一个人开始计算，有一个错位关系，当人数满足涨价的时候，
//		    //当前这个人还是原来的上一次的定价
//		int b = j / m;
//		v = v + a * b;
//		sum += v;
//		if (j == m)//当涨价一次后，之前报名的人就不算了，j=0,重新开始计算
//		{          //  
//			j = 0;
//		}
//	}
//	sum+=v2;
//	printf("%d", sum);
//	return 0;
//}
//int Add(int x, int y)
//{
//	return x + y;
//}
//
//int Sub(int x, int y)
//{
//	return x - y;
//}
//
//int Mul(int x, int y)
//{
//	return x * y;
//}
//
//int Div(int x, int y)
//{
//	return x / y;
//}
//
//#include<stdio.h>
//void menu()
//{
//	printf("******************************\n");
//	printf("*****   1 Add    2 Sub   *****\n");
//	printf("*****   3 Mul    4 Div   *****\n");
//	printf("*****   0 exit           *****\n");
//	printf("******************************\n");
//}
//
//int main()
//{
//	int x, y;
//	int n = 0;
//	int ret = 0;
//	int(*ptr[5])(int x, int y) = { 0, Add,Sub,Mul,Div };
//	do
//	{
//		menu();
//		scanf("%d", &n);
//
//		if (n >= 1 && n <= 4)
//		{
//			printf("请输入要计算的数字: ");
//			scanf("%d %d", &x, &y);
//			ret = (*ptr[n])(x, y);
//			printf("计算结果是: %d \n", ret);
//		}
//		else if (n == 0)
//		{
//			printf("退出计算 \n");
//		}
//		else
//		{
//			printf("输入错误，请重新输入 \n");
//		}
//
//	} while (n);
//
//	return 0;
//}
//int int_cmp(const void* p1, const void* p2)
//{
//	return *(int*)p1 - *(int*)p2;
//}
//
//void print(int* arr,int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", *(arr + i));
//	}
//	printf("\n"); 
//
//}
//#include<stdio.h>
//int main()
//{
//	int arr[10] = { 2,4,1,4,8,6,5,9,7,5 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int width = sizeof(int);
//	printf("排序前：");
//	print(arr, sz);
//
//	qsort(arr, sz, width, int_cmp);
//
//	printf("排序后：");
//
//	print(arr,sz);
//
//	return 0;
//}
//#include<stdio.h>
//
//struct stu
//{
//	char name[20];
//	int age;
//};
//
//int compare(const void* e1, const void* e2)
//{
//	return((struct stu*)e1)->age - ((struct stu*)e2)->age;
//}
//void print(struct stu s[], int sz)
//{
//	for (int i = 0; i <sz; i++)
//	{
//		printf("%d ", s[i].age);
//	}
//}
//int main()
//{
//	
//	struct stu s[] = { {"zhangsan",23},{"lisi",18},{"wangwu" ,58}};
//	int sz = sizeof(s) / sizeof(s[0]);
//	qsort(s, sz, sizeof(s[0]), compare);
//	print(s, sz);
//
//	return 0;
//}

//#include<stdio.h>
//int main()
//{
//	int arr[8] = { 1,1,2,2,3,3,4,5 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int i = 0; 
//	int j = 0;
//	for (i = 0; i < sz; i++)
//	{
//		for (j = 0; j < sz; j++)
//		{
//			if (i == j)
//			{
//				continue;
//			}
//			if (arr[i] != arr[j])
//			{
//				printf("%d ", arr[i]);
//			}
//
//		}
//	}
//	return 0;
//}
//int compare(const void* p1, const void* p2)
//{
//	return *((int*)p1) - *((int*)p2);
//}
//
//void jiaohuan(void * p1,void *p2, int  width)
//{
//	int z = 0;
//	for (z = 0; z < width; z++)
//	{
//		char tem = *((char*)p1 + z);
//		*((char*)p1 + z) = *((char*)p2 + z);
//		*((char*)p2 + z) = tem;
//	}
//
//}
//
//void moniqsort(void* arr, int sz, int width, int (*compare)(void* p1, void* p2))
//{
//	int i = 0;
//	int j = 0;
//	for (i = 0; i < sz - 1; i++)
//	{
//		for (j = 0; j < sz - 1 - i; j++)
//		{
//			if (compare((char*)arr + j * width, (char*)arr + (j + 1) * width) > 0)
//			{
//				jiaohuan((char*)arr + j * width, (char*)arr + (j + 1) * width,width);
//			}
//		}
//	}
//}
//
//void print(int arr[10], int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	printf("\n");
//}
//#include<stdio.h>
//int main()
//{
//	int arr[10] = { 4,5,7,5,4,2,9,4,8,6 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int width = sizeof(int);
//
//	print(arr, sz);
//
//	moniqsort(arr, sz, width, compare);
//
//	print(arr, sz);
//	return 0;
//}
//#include<stdio.h>
//
//int compare(const void* p1, const void* p2)
//{
//	return *(int*)p1 - *(int*)p2;
//}
//
//void print(int* arr , int sz)
//{
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%d ", *(arr+i));
//	}
//	printf("\n");
//}
//
//
//int main()
//{
//	int arr[10] = { 9,8,7,6,5,4,3,2,1 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int width = sizeof(int);
//
//	print(arr, sz);
//
//	qsort(arr, sz, width, compare);
//
//	print(arr, sz);
//
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	double x, y, sum;
//	scanf("%d %d ", &x, &y);
//	if(x>1 && x<3&&  )
//return 0;
//
//}
//#include<stdio.h>
//int main()
//{
//	double x, y;
//	scanf("%lf %lf", &x, &y);
//	if (x > 1 && x < 3 && y>1 && y < 3)
//		printf("sum=10");
//	if (x > -3 && x < -1 && y>1 && y < 3)
//		printf("sum=10");
//	if (x > 1 && x < 3 && y<-1 && y>-3)
//		printf("sum=10");
//	if (x > -3 && x<-1 && y>-3 && y < -1)
//		printf("sum=10");
//	else
//		printf("sum=0");
//	return 0;
//}
#include <stdio.h>

int main() {
    int n = 0;
    double sum = 0;
    double arr[100] = { 0 };
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
        scanf("%lf", &arr[i]);
        sum += arr[i];

    }
    double tem = arr[0];
    double tem2 = arr[0];

    for (int j = 1; j < n; j++)
    {
        if (tem < arr[j])
        {
            tem = arr[j];
        }
    }

    for (int j = 1; j < n; j++)
    {
        if (tem2 > arr[j])
        {
            tem2 = arr[j];
        }
    }
    sum = sum / n;
    printf("%.2lf %.2lf %.2lf", tem, tem2, sum);


    return 0;
}